home *** CD-ROM | disk | FTP | other *** search
/ Mission 3 / Mission 3.zip / Mission 3.iso / texte / qed / src / vaproto.h < prev    next >
C/C++ Source or Header  |  1994-12-20  |  18KB  |  449 lines

  1. /*
  2.  * @(#) Gemini\vaproto.h
  3.  * @(#) Stefan Eissing, 11. Dezember 1994
  4.  *
  5.  *
  6.  * Beschreibung: Definition der Nachrichten des Venus <-> Accessory
  7.  * Protokolls
  8.  *
  9.  * 07.12.: AV_PATH_UPDATE, AV_WHAT_IZIT, AV_DRAG_ON_WINDOW eingebaut.
  10.  * 21.10.94: AV_STARTED 
  11.  * 31.10.94: AV_XWIND und VA_FONTCHANGED eingeführt.
  12.  *           Siehe auch die neue Bitbelegung in PROTOSTATUS
  13.  * 12.11.94  Neues Bit im PROTOSTATUS des Accessories zum "Quoten"
  14.  *           von Dateinamen
  15.  */
  16.  
  17. #ifndef __vaproto__
  18. #define __vaproto__
  19.  
  20. /* Message-Nummern für das xAcc-Protokoll von Konrad Hinsen
  21.  * Venus gibt bei ACC_ID "VENUS.APP" und Gemini gibt "GEMINI.APP"
  22.  * zurück. Gemini unterstützt xAcc der Stufe 0.
  23.  */
  24. #define ACC_ID        0x400
  25. #define ACC_OPEN    0x401
  26. #define ACC_CLOSE    0x402
  27. #define ACC_ACC        0x403
  28.  
  29. /* Message-Nummern für die Kommunikation zwischen Venus und
  30.  * verschiedenen Accesories.
  31.  * Sollten in Nachrichten Pfade oder Dateinamen vorkommen, so
  32.  * muß immer der absolute Pfad angegeben werden (also mit Laufwerk)
  33.  * und die Laufwerksbuchstaben müssen Großbuchstaben sein. Pfade 
  34.  * sollten immer mit einem Backslash enden!
  35.  * Neu seit dem 12.11.94 ist, daß optional Namen auch mit einfachen
  36.  * Anführungszeichen versehen werden können. Siehe AV_PROTOKOLL.
  37.  *
  38.  * Nachrichten von Venus beginnen mit VA (Venus -> Accessory).
  39.  * Nachrichten an Venus beginnen mit AV (Accessory -> Venus).
  40.  *
  41.  * Mit AV_PROTOKOLL kann jedes Acc nachfragen, welche Nachrichten
  42.  * verstanden werden (Dies ist ja bei VENUS und GEMINI 
  43.  * unterschiedlich! Es wäre schön, wenn auch andere Programme auf
  44.  * dieses Protokoll reagieren würden. Zumindest AV_SENDKEY ist
  45.  * sicher leicht zu implementieren und ist die einzige Methode, wie
  46.  * über Nachrichten Tastaturdrücke simuliert werden können.
  47.  *
  48.  * Unter normalem TOS fragt dazu ein Accessory, wenn es eine
  49.  * AC_CLOSE-Nachricht vom AES erhalten hat, die Applikation 0
  50.  * mit AV_PROTOKOLL, ob sie etwas davon versteht.
  51.  * Unter MultiTOS muß aber das Programm nicht mehr die ID 0
  52.  * haben, zudem kommt es (fast) nicht mehr zu AC_CLOSE-Nachrichten.
  53.  * Es können auch nicht nur Accessories, sondern auch normale
  54.  * Programme mit Gemini kommunizieren wollen. Was tun?
  55.  * Wenn es mehr als eine Hauptapplikation geben kann, dann sollte
  56.  * das Programm/Accessory versuchen, mit GEMINI Kontakt aufzunehmen.
  57.  * Die ID kann ja mit appl_find ermittelt werden. Scheitert dies, so
  58.  * kann noch nach AVSERVER oder dem Inhalt der (AES-)Environmentvariable
  59.  * AVSERVER gesucht werden. Besonders die letzte Möglichkeit erlaubt
  60.  * eine leichte Konfiguration "von außen". Die neuen Versionen der
  61.  * Library VAFUNC von Stephan Gerle (in gutsortierten Mailboxen
  62.  * erhältlich) verfahren fast genauso.
  63.  */
  64.  
  65. /* AV_PROTOKOLL: Mit dieser Nachrichtennummer sollte man bei 
  66.  * anderen Applikationen und auch GEMINI nachfragen, ob
  67.  * und welche Nachrichten sie versteht.
  68.  */
  69.  
  70. #define AV_PROTOKOLL        0x4700
  71. /*
  72.  * Word 6+7: Pointer auf den Accessorynamen, wie er bei
  73.  *           appl_find benutzt werden muß; also 8 Zeichen lang
  74.  *           nullterminiert (char name[9]).
  75.  * Die Bits in den Worten 3, 4 und 5 haben folgende Bedeutung:
  76.  * Word 3:
  77.  * Bit 0:        (VA_SETSTATUS)
  78.  * Bit 1:        (VA_START)
  79.  * Bit 2:       (AV_STARTED)
  80.  * Bit 3:       (VA_FONTCHANGED)
  81.  * Bit 4:       (Versteht und benutzt Quoting von Dateinamen)
  82.  *
  83.  * Alle anderen Bits sind für Erweiterungen reserviert und sollten
  84.  * daher mit 0 vorbesetzt werden. Das gilt natürlich auch für die
  85.  * Bits in den Worten 4 und 5.
  86.  * (Mehr zum Quoting siehe unten)
  87.  */
  88.  
  89. /* Macros zum Testen des Protkollstatus auf Quoting
  90.  */
  91. #define VA_ACC_QUOTING(a)        ((a) & 0x10)
  92. #define VA_SERVER_QUOTING(a)    ((a) & 0x40)
  93.  
  94. /* VA_PROTOSTATUS: Dem Sender von AV_PROTOKOLL wird mitgeteilt, daß
  95.  * der Empfänger etwas von diesem Protokoll weiß. Die Worte 3-7 des
  96.  * Nachrichtenpuffers enthalten die Information, welche Nachrichten
  97.  * verstanden werden. Gesetzte Bits stehen dafür, daß eine Nachricht
  98.  * (Nachrichtengruppe) verstanden werden. 
  99.  */
  100. #define VA_PROTOSTATUS        0x4701
  101. /*
  102.  * Word 6+7: Pointer auf den Programmnamen, wie er bei
  103.  *           appl_find benutzt werden muß; also 8 Zeichen lang
  104.  *           nullterminiert (char name[9]).
  105.  * Die Bits in den Worten 3, 4 und 5 haben folgende Bedeutung:
  106.  * Word 3:
  107.  * Bit 0        (AV_SENDKEY)
  108.  * Bit 1        (AV_ASKFILEFONT)
  109.  * Bit 2        (AV_ASKCONFONT, AV_OPENCONSOLE)
  110.  * Bit 3        (AV_ASKOBJECT)
  111.  * Bit 4        (AV_OPENWIND)
  112.  * Bit 5        (AV_STARTPROG)
  113.  * Bit 6        (AV_ACCWINDOPEN, AV_ACCWINDCLOSED)
  114.  * Bit 7        (AV_STATUS, AV_GETSTATUS)
  115.  * Bit 8        (AV_COPY_DRAGGED)
  116.  * Bit 9        (AV_PATH_UPDATE, AV_WHAT_IZIT, AV_DRAG_ON_WINDOW)
  117.  * Bit 10        (AV_EXIT)
  118.  * Bit 11       (AV_XWIND)
  119.  * Bit 12       (VA_FONTCHANGED)
  120.  * Bit 13        (AV_STARTED)
  121.  * Bit 14       (Versteht und benutzt Quoting von Dateinamen)
  122.  *
  123.  * Alle anderen Bits sind für Erweiterungen reserviert und sollten
  124.  * daher mit 0 vorbesetzt werden. Das gilt natürlich auch für die
  125.  * Bits in den Worten 4 und 5.
  126.  *
  127.  * AV_SENDKEY kann sicher jeder leicht in seine Programme einbauen.
  128.  * Bei AV_OPENWIND könnte ein Hauptprogramm auch seine "normale"
  129.  * Routine zum Öffnen eines Dokumentes anwerfen und dabei den
  130.  * übergebenen Pfad benutzen. Dies ist zusammen mit der Benutzung
  131.  * von TreeView sicher eine einfache Art, Dateien aus anderen Ordnern
  132.  * oder Laufwerken zu laden.
  133.  *
  134.  * Zu Bit 14 (im Server, z.B. Gemini), bzw. Bit 4 im Client 
  135.  * (Accessory):
  136.  * Mit "Quoting" ist im VA-Protkoll gemeint, daß Dateinamen optional
  137.  * mit einfachen Anführungszeichen 'name' versehen werden können.
  138.  * Dies ist aber nur erlaubt, wenn beide Parteien (Server und Client)
  139.  * sich darüber einig sind (lies: beide es verstehen können).
  140.  * Wie geht das also vor sich? Angenommen Gemini schickt an ein
  141.  * Accessory einen Dateinamen, der ein Leerzeichen enthält. Ein Acc,
  142.  * das Quoting nicht kann, wird statt einem zwei Dateinamen erkennen,
  143.  * da normalerweise Leerzeichen Dateinamen trennen.
  144.  * Versteht das Acc aber Quoting (Bit 4 in seinem Protokollstatus),
  145.  * so wird Gemini den Dateinamen mit '' umgeben und das Acc erkennt,
  146.  * daß das Leerzeichen zum Dateinamen gehört.
  147.  * Gleiches gilt natürlich auch für Dateinamen, die von einem Acc
  148.  * an einen Server geschickt werden. Die Frage bleibt, wie man denn
  149.  * nun einfache Anführungszeichen überträgt. Nun, solche Zeichen,
  150.  * die zum Dateinamen gehören, werden einfach verdoppelt. Aus
  151.  * Julian's Profibuch wird für die Übertragung 'Julian''s Profibuch'.
  152.  * Einfach nicht? Nun, die Idee stammt nicht von mir, sondern wird
  153.  * genauso auch in Atari's Drag&Drop Protokoll benutzt.
  154.  */
  155.  
  156. /* AV_GETSTATUS: Ein Accessory erfragt bei Venus den aktuellen
  157.  * Status, den es Venus mit AV_STATUS mal gegeben hat.
  158.  */
  159. #define AV_GETSTATUS        0x4703
  160.  
  161. /* AV_STATUS: Ein Accessory kann Venus seinen Status mitteilen,
  162.  * der dann von Venus im INF-File gespeichert wird und mit
  163.  * AV_GETSTATUS wieder abgerufen werden kann.
  164.  * Zuvor MUSS es sich aber mit AV_PROTOKOLL anmelden!
  165.  * Word 3+4: Pointer auf einen String, der keine Steuerzeichen
  166.  *           enthalten darf und nicht länger als 256 Zeichen
  167.  *           sein darf. Dieser Pointer darf allerdings NULL sein.
  168.  */
  169. #define AV_STATUS            0x4704
  170.  
  171. /* VA_SETSTATUS: Venus teilt dem Accessory den abgespeicherten
  172.  * Status bei Nachfrage durch AV_GETSTATUS mit. Dieser kann dann 
  173.  * von einem Accessory gesetzt werden.
  174.  * Word 3+4: Pointer auf einen String, der keine Steuerzeichen
  175.  *           enthält.
  176.  *           Dieser Pointer kann allerdings NULL sein, dann war
  177.  *           kein Status gespeichert.
  178.  */
  179. #define VA_SETSTATUS        0x4705
  180.  
  181. /* AV_SENDKEY: Ein Acc sendet VENUS/GEMINI einen Tastaturevent, den
  182.  * es selber vielleicht nicht versteht.
  183.  * Word 3 = Tastaturstatus                 ev_mmokstate
  184.  * Word 4 = Scancode der gedrückten Taste  ev_mkreturn
  185.  */
  186. #define    AV_SENDKEY            0x4710
  187.  
  188. /* VA_START: Accessory wird aktiviert. Word 3 + 4 enthalten einen
  189.  * Pointer auf eine Kommandozeile, der auch NULL sein kann.
  190.  * In der Kommandozeile stehen Pfade oder Dateinamen.
  191.  */
  192. #define VA_START            0x4711
  193.  
  194. /* AV_ASKFILEFONT: Frage nach dem eingestellten Zeichensatz
  195.  * für Dateinamen.
  196.  */
  197. #define AV_ASKFILEFONT        0x4712
  198.  
  199. /* VA_FILEFONT: Gibt den derzeit eingestellten Zeichensatz.
  200.  * Word 3 = Dateifontnummer (font id)
  201.  * Word 4 = Dateifontgröße (in points)
  202.  */
  203. #define VA_FILEFONT            0x4713
  204.  
  205. /* (Nur Gemini) AV_ASKCONFONT: Frage nach dem eingestellten 
  206.  * Zeichensatz für das Console-Fenster.
  207.  */
  208. #define AV_ASKCONFONT        0x4714
  209.  
  210. /* VA_CONFONT: Gibt den derzeit eingestellten Zeichensatz.
  211.  * Word 3 = Consolefontnummer (font id)
  212.  * Word 4 = Consolefontgröße (in points)
  213.  */
  214. #define VA_CONFONT            0x4715
  215.  
  216. /* AV_ASKOBJECT: Fragt nach dem derzeit selektiertem Objekt.
  217.  * Es wird der Name des derzeit selektierten Objektes zurückgegeben.
  218.  * Ist kein Objekt selektiert, so ist der String leer.
  219.  * Sind mehrere Objekte selektiert, so sind ihre Namen durch Leer-
  220.  * zeichen getrennt.
  221.  */
  222. #define AV_ASKOBJECT    0x4716
  223.  
  224. /* VA_OBJECT: Gibt Namen der derzeit selektierten Objekte.
  225.  * Aufbau wie bei VA_START
  226.  */
  227. #define VA_OBJECT        0x4717
  228.  
  229. /* (Nur Gemini)AV_OPENCONSOLE: Venus soll das Console-Fenster öffnen.
  230.  * Ist es schon offen, so wird es nach vorne gebracht. Diese Aktion
  231.  * ist vor allen Dingen sinnvoll, wenn ein Accessory ein TOS-Programm
  232.  * mittels der system()-Funktion starten will (Warnung: Auf keinen
  233.  * Fall darf ein GEM-Programm von einem Accessory via system() 
  234.  * gestartet werden! (siehe auch AV_STARTPROG)
  235.  * Auch sollte diese Nachricht nur auf ausdrücklichen Wunsch des
  236.  * Benutzers gebraucht werden, da es ihn sonst nur verwirren kann.
  237.  *
  238.  * ACHTUNG: Diese Nachricht steht nur in Gemini.app zur Verfügung.
  239.  */
  240. #define AV_OPENCONSOLE    0x4718
  241.  
  242. /* VA_CONSOLEOPEN: Gibt zurück, ob das Console-Fenster nach vorne
  243.  * gebracht worden ist. Word 3 == 0 (nein) != 0 (ja)
  244.  */
  245. #define VA_CONSOLEOPEN    0x4719
  246.  
  247. /* AV_OPENWIND: Venus soll ein Datei-Fenster öffnen.
  248.  * Dies sollte auch nur geschehen, wenn die Ursache für den
  249.  * Benutzer ersichtlich ist.
  250.  * Word 3+4 (Pointer) Pfad für das Fenster (s.o.).
  251.  * Word 5+6 (Pointer) Wildcard für darzustellende Dateien.
  252.  */
  253. #define AV_OPENWIND        0x4720
  254.  
  255. /* VA_WINDOPEN: Gibt an, ob das Fenster geöffnet werden konnte.
  256.  * siehe VA_CONSOLEOPEN
  257.  */
  258. #define VA_WINDOPEN        0x4721
  259.  
  260.  
  261. /* Word 7 in AV_STARTPROG und Word 4 und 7 in VA_PROGSTART sind
  262.  * neu seit dem 29. März 1992.
  263.  */
  264.  
  265. /* AV_STARTPROG: Venus soll ein Programm starten. Hierbei
  266.  * werden die angemeldeten Applikationen der Venus mit
  267.  * berücksichtigt. Man kann also auch eine Datei angeben, für
  268.  * die Venus dann ein Programm sucht.
  269.  * Word 3+4 (Pointer) Programmname mit kompletten Pfad
  270.  * Word 5+6 (Pointer) Kommandozeile (kann NULL sein)
  271.  * Word 7   Beliebiges 16-Bit Wort, das in VA_PROGSTART wieder
  272.  *          zurückgeliefert wird.
  273.  */
  274. #define AV_STARTPROG    0x4722
  275.  
  276. /* VA_PROGSTART: Gibt an, ob Venus das Programm startet.
  277.  * Word 3 == 0: nicht gestartet, != 0 gestartet
  278.  * Im Allgemeinen wird das Acc. im Fehlerfall sofort eine
  279.  * Nachricht bekommen. Wenn das Programm aber gestartet wird, erhält
  280.  * das Acc. diese Nachricht erst nach dem Start des Programms, da
  281.  * die Routine, die den Pexec macht nicht mehr wissen kann, das ein
  282.  * Acc. noch schnell eine Nachricht bekommen muß. Bei einem GEM-
  283.  * Programm, kann man der Erfolg auch an dem AC_CLOSE erkennen.
  284.  * Auch ist die Fehlererkennung nicht optimal. Der Rückgabewert weist
  285.  * auch nicht aus, das das Programm fehlerfrei gelaufen ist.
  286.  *
  287.  * Word 4   Returncode des gestarteten Programms (so vorhanden)
  288.  * Word 7   16-Bit Wort aus AV_STARTPROG
  289.  */
  290. #define VA_PROGSTART    0x4723
  291.  
  292. /* AV_ACCWINDOPEN: Mit dieser Nachricht kann ein Acc Venus mitteilen, daß
  293.  * es ein Fenster geöffnet hat.
  294.  * Word 3 AES-Handle des geöffneten Fensters
  295.  */
  296. #define AV_ACCWINDOPEN    0x4724
  297.  
  298. /* VA_DRAGACCWIND: Venus teilt dem Acc mit, daß Objekte auf eines seiner
  299.  * mittels AV_ACCWINDOPEN angemeldeten Fenster gezogen worden sind.
  300.  * Word 3   AES-Handle des Fensters
  301.  * Word 4   X-Position der Maus
  302.  * Word 5   Y-Position der Maus
  303.  * Word 6+7 Pointer auf einen String, der die Namen der Objekte enthält.
  304.  */
  305. #define VA_DRAGACCWIND    0x4725
  306.  
  307. /* AV_ACCWINDCLOSED: Acc teilt Venus mit, daß sein Fenster geschlossen
  308.  * wurde. Dies braucht das Acc nur in dem Fall zu tun, wenn es selbst das
  309.  * Fenster schließt. Bekommt es eine AC_CLOSE Mitteilung vom AES, so weiß
  310.  * Venus schon, daß alle Fenster weg sind.
  311.  * Word 3   AES-Handle des Fensters
  312.  */
  313. #define AV_ACCWINDCLOSED    0x4726
  314.  
  315.  
  316. /* Neu seit dem 11.04.1991!!!
  317.  */
  318.  
  319. /* AV_COPY_DRAGGED: Accessorie teilt Venus mit, daß die Objekte,
  320.  * die auf sein Fenster gezogen wurden, zu kopieren sind.
  321.  * Dies kann z.B. nach dem Ziehen von Objekten auf das TreeView-
  322.  * Fenster erwünscht sein. Diese Nachricht ist nur als Antwort
  323.  * auf VA_DRAGACCWIND gedacht.
  324.  * Word 3    Tastaturstatus (Alternate, Control, Shift)
  325.  * Word 4+5    Pointer auf einen String, der den Namen des Zielobjektes 
  326.  *            enthält. Dies *muß* ein Pfad sein!
  327.  */
  328. #define AV_COPY_DRAGGED        0x4728
  329.  
  330. /* VA_COPY_COMPLETE: Antwort auf AV_COPY. 
  331.  * Word 3    Status des Kopierens. (!= 0 heißt, daß wirklich etwas
  332.  *            kopiert oder verschoben wurde. Dies kann das Acc evtl.
  333.  *          zum Neuaufbau seines Fensters nutzen.)
  334.  */
  335. #define VA_COPY_COMPLETE    0x4729
  336.  
  337.  
  338. /* AV_PATH_UPDATE: Programm/Accessory teilt Gemini mit, daß sich
  339.  * der Inhalt eines Verzeichnisses geändert hat. Gemini stellt dann
  340.  * dieses Verzeichnis (so ein Fenster davon offen ist) neu dar. Dies
  341.  * wirkt auch auf die Unterverzeichnisse; Update von "C:\" sorgt
  342.  * dafür, daß alles, was mit Laufwerk C:\ zu tun hat, neu eingelesen
  343.  * wird.
  344.  *
  345.  * Word 3+4 Pointer auf den absolten Pfad
  346.  */
  347. #define AV_PATH_UPDATE        0x4730
  348.  
  349.  
  350. /* AV_WHAT_IZIT: Programm/Accessory fragt Gemini, was sich an 
  351.  * Position X/Y auf dem Bildschirm befindet. Die Koordinaten sind
  352.  * normale Pixelkoordinaten mit Ursprung in der linken oberen
  353.  * Bildschirmecke. Antwort ist VA_THAT_IZIT.
  354.  * Word 3   X-Koordinate
  355.  * Word 4   Y-Koordinate
  356.  */
  357. #define AV_WHAT_IZIT        0x4732
  358.  
  359. /* VA_THAT_IZIT:
  360.  * Word 3   ID der zuständigen Applikation
  361.  * Word 4   Typ des Objektes
  362.  * word 5+6 Zeiger auf den Namen des Objektes (oder NULL, falls nicht 
  363.  *          vorhanden)
  364.  *
  365.  * Typ ist wie folgt: (alle anderen für Erweiterungen reserviert.)
  366.  */
  367. #define    VA_OB_UNKNOWN    0        
  368. #define VA_OB_TRASHCAN  1
  369. #define VA_OB_SHREDDER  2
  370. #define VA_OB_CLIPBOARD 3
  371. #define VA_OB_FILE      4
  372. #define VA_OB_FOLDER    5
  373. #define VA_OB_DRIVE        6
  374. #define VA_OB_WINDOW    7
  375.  
  376. #define VA_THAT_IZIT        0x4733
  377.  
  378. /* AV_DRAG_ON_WINDOW: Programm/Accessory teilt Gemini mit, daß 
  379.  * Objekte auf eines seiner mittels AV_WHATIZIT erfragten Fenster 
  380.  * gezogen worden sind. Die Namen sind Namen von Dateien, Ordnern
  381.  * oder Laufwerken, jeweils durch ein Leerzeichen getrennt. Namen
  382.  * von Ordnern oder Laufwerken enden mit einem Backslash.
  383.  *
  384.  * Word 3   X-Position, wohin die Maus gezogen wurde
  385.  * Word 4   Y-Position, wohin die Maus gezogen wurde
  386.  * Word 5   Tastaturstatus (Shift,Control,Alternate)
  387.  * Word 6+7 Pointer auf einen String, der die Namen der Objekte enthält.
  388.  *
  389.  * (nun implementiert, beachte daß sich die Belegung der Nachricht
  390.  *  leicht geändert hat. Das Fenster handle ist verschwunden und 
  391.  *  dafür wurde der aktuelle Tastaturstatus eingefügt.)
  392.  *
  393.  */
  394. #define AV_DRAG_ON_WINDOW    0x4734
  395.  
  396. /* VA_DRAG_COMPLETE: Die Aktion, die mittels AV_DRAG_ON_WINDOW
  397.  * ausgelöst wurde (Kopieren, Verschieben, LÖschen oder ablegen
  398.  * auf den Hintergrund) ist beendet. Bei Erfolg wird ein Wert
  399.  * wie bei AV_COPY_COMPLETE zurückgeliefert.
  400.  * Word 3    Status der Aktion. (!= 0 heißt, daß wirklich etwas
  401.  *            kopiert oder verschoben wurde. Dies kann das Acc evtl.
  402.  *          zum Neuaufbau seines Fensters nutzen.)
  403.  */
  404. #define VA_DRAG_COMPLETE    0x4735
  405.  
  406. /* AV_EXIT: Ein Programm/Accessory teilt Gemini mit, daß es nicht
  407.  * mehr am Protokoll teilnimmt (normalerweisem, weil es beendet
  408.  * wurde).
  409.  * Word 3   AES-ID des Programms/Accessories
  410.  */
  411. #define AV_EXIT                0x4736
  412.  
  413. /* AV_STARTED: Ein Programm/Accessory teilt Gemini mit, daß es
  414.  * die VA_START Nachricht verstanden hat und der Speicher des
  415.  * Strings, der an die Nachricht angehängt war, freigegeben werden
  416.  * kann. Zum Erkennen um welche VA_START Nachricht es sich handelt,
  417.  * werden die Werte von VA_START zurückgeliefert.
  418.  * Word 3+4: exakt derselbe Inhalt der VA_START Nachricht.
  419.  */
  420. #define AV_STARTED          0x4738
  421.  
  422. /* VA_FONTCHANGED: Einer der in Gemini eingestellen Fonts hat
  423.  * sich geändert. Wird an alle Applikationen geschickt, die schon
  424.  * mal den Font von Gemini erfragt haben.
  425.  *
  426.  * Word 3 = Dateifontnummer   (font id)
  427.  * Word 4 = Dateifontgröße    (in points)
  428.  * Word 5 = Consolefontnummer (font id)
  429.  * Word 6 = Consolefontgröße  (in points)
  430.  */
  431. #define VA_FONTCHANGED        0x4739
  432.  
  433. /* AV_XWIND: Venus soll ein Datei-Fenster öffnen (eXtended).
  434.  * Dies sollte auch nur geschehen, wenn die Ursache für den
  435.  * Benutzer ersichtlich ist.
  436.  * Word 3+4 (Pointer) Pfad für das Fenster (s.o.).
  437.  * Word 5+6 (Pointer) Wildcard als Filter für Anzeige
  438.  * Word 7   Bitmaske  0x0001 - toppe evtl. vorhandenes Fenter
  439.  *                    0x0002 - Wildcard soll nur selektieren
  440.  *                           - alle anderen Bits auf 0 setzen!
  441.  */
  442. #define AV_XWIND        0x4740
  443.  
  444. /* VA_XOPEN: Gibt an, ob das Fenster geöffnet werden konnte.
  445.  * (Word 3 == 0 (nein) != 0 (ja))
  446.  */
  447. #define VA_XOPEN        0x4741
  448.  
  449. #endif